import { T_srv, Tsrv, ifs, ts, tvs, vue } from '@/services';
import { I_cmd, T_cmd } from './command';
import { N_cChartView } from './type';

const getGridOptions = () => {
  return {
    border: true,
    showHeaderOverflow: true,
    showOverflow: true,
    keepSource: true,
    id: 'full_edit_1',
    height: '100%',
    rowConfig: {
      isHover: true,
      keyField: 'id'
    },
    columnConfig: {
      resizable: true
    },
    customConfig: {
      storage: true
    },
    sortConfig: {
      trigger: 'cell',
      remote: true
    },
    filterConfig: {
      remote: true
    },
    pagerConfig: {
      total: 0, // 总条数
      currentPage: 1, // 当前页
      pageSize: 30, // 每页大小
      align: 'right', // 对齐方式
      pageSizes: [10, 30, 100, 200, 500, 1000],
      iconPrevPage: 'wy-icon wy-shangyiye1',
      iconJumpPrev: 'wy-icon wy-shangyiye',
      iconJumpNext: 'wy-icon wy-xiayiye',
      iconNextPage: 'wy-icon wy-xiayiye1',
      iconJumpMore: 'wy-icon wy-gengduo',
      layouts: [
        'Sizes',
        'FullJump',
        'PrevJump',
        'PrevPage',
        'Number',
        'NextPage',
        'NextJump',
        'Total'
      ],
      perfect: true, // 配套样式
      autoHidden: false // 当只有一页时自动隐藏
    },

    columns: [
      { type: 'seq', title: '序号', width: 50 },
      // {
      //   field: 't',
      //   title: '时间',
      //   align: 'center'
      // },

      // {
      //   field: 'v',
      //   title: '值',
      //   align: 'center'
      // }
      {
        field: 'name',
        title: '时间',
        align: 'center'
      },

      {
        field: 'value',
        title: '值',
        align: 'center'
      },
      {
        field: 'type',
        title: '类型',
        align: 'center'
      }
    ]
  };
};


const getConfig = () => ({
  "chartView": {
    // 展示方式："tab"-新浏览器页签 | "popup"-弹窗
    "mode": "popup",
    // 弹窗配置
    "modal": {
      "title": "温度监控图表",
      "width": 1200,
      "height": 800
    },
    // 图纸信息配置
    "drawingInfo": {
      "fields": [{
        "key": "drawingNumber",
        "label": "图号",
        "defaultValue": "TEMP-2024-001",
        "editable": true
      },
      {
        "key": "equipmentNumber",
        "label": "设备号",
        "defaultValue": "EQ-TEMP-001",
        "editable": true
      },
      {
        "key": "drawingBy",
        "label": "制图",
        "defaultValue": "张三",
        "editable": true
      },
      {
        "key": "inspector",
        "label": "检验",
        "defaultValue": "李四",
        "editable": true
      },
      {
        "key": "approvalBy",
        "label": "审核",
        "defaultValue": "王五",
        "editable": true
      },
      {
        "key": "date",
        "label": "日期",
        "defaultValue": "",
        "editable": true
      },
      {
        "key": "scale",
        "label": "比例",
        "defaultValue": "1:1",
        "editable": true
      },
      {
        "key": "material",
        "label": "材料",
        "defaultValue": "不锈钢316L",
        "editable": true
      }
      ]
    },
    // 图表类型
    // "type": "line",
    // 图表配置项
    "chartConfig": {
      // 容器配置
      "container": {
        "width": 1200,
        "height": 800,
        "padding": {
          "left": 80,
          "right": 20,
          "top": 20,
          "bottom": 50
        }
      },
      "lineTypes": {
        "opctest4": {
          "stroke": "#ff4d4f",
          "strokeWidth": 2,
          "label": "默认线条"
        },
        "opctest3": {
          "stroke": "#4d79ff",
          "strokeWidth": 2,
          "label": "线条一"
        }
      },
      // 数据点样式
      "points": {
        "radius": 4,
        "normalColor": "#2abc4eff",
        "outlierColor": "#7f4da5ff",
        "outlierRadius": 6,
        "stroke": "#fff",
        "strokeWidth": 2
      },
      // 网格配置
      "grid": {
        "mainLines": {
          "stroke": "#e0e0e0",
          "strokeWidth": 1
        },
        "fineLines": {
          "stroke": "#e0e0e0",
          "strokeWidth": 1,
          "enabled": true
        }
      },
      // 坐标轴配置
      "axes": {
        "stroke": "#333",
        "strokeWidth": 2
      },
      // X轴配置
      "xAxis": {
        "ticks": {
          "fontSize": 12,
          "color": "#333"
        }
      },
      // Y轴配置
      "yAxis": {
        "ticks": {
          "fontSize": 12,
          "color": "#333",
          "format": "°C"
        }
      },
      // 悬停提示框配置
      "tooltip": {
        "backgroundColor": "rgba(0, 0, 0, 0.8)",
        "color": "white",
        "fontSize": "12px",
        "padding": "4px 8px",
        "borderRadius": "4px"
      },
      // 异常值标签配置
      "outlierLabels": {
        "enabled": true,
        "fontSize": 10,
        "color": "#ff4d4f",
        "fontWeight": "bold"
      },
      // 缩放配置
      "zoom": {
        "minZoom": 0.1,
        "maxZoom": 5,
        "defaultZoom": 1
      }
    },
    // 图表数据源配置
    "dataSource": {
      "url": "/api/chart/data",
      "method": "get",
      "params": {
      },
      // 时间字段映射配置
      // "timeFieldMapping": {
      //   "startTime": "beginTime",  // 组件内部字段名 -> API实际字段名
      //   "endTime": "endTime"
      // },
      // 数据预处理配置
      "dataProcessing": {
        // 是否需要解压
        "needUnzip": true,
        // 数据转换配置
        "transform": {
          // 字段映射
          "fieldMapping": [{
            "source": "t",
            "target": "name"
          },
          {
            "source": "v",
            "target": "value"
          },
          {
            "source": "label",
            "target": "type"
          }
          ]
        }
      }
    },
    // 功能开关配置
    "features": {
      "zoom": true,
      "drag": true,
      "print": true,
      "exportImage": true,
      "timeRangeSelector": true,
      "drawingInfoEditable": true
    }
  }
});
export { I_cmd, N_cChartView, T_cmd, T_srv, Tsrv, getConfig, getGridOptions, ifs, ts, tvs, vue };
